home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 July: Mac OS SDK / Dev.CD Jul 97 SDK1.toast / Development Kits (Disc 1) / Communications Toolbox / CommToolbox 1.1 / Interfaces / PInterfaces / FileTransfers.p < prev    next >
Encoding:
Text File  |  1994-11-21  |  6.1 KB  |  237 lines  |  [TEXT/MPS ]

  1. {************************************************************
  2.     FileTransfers.p
  3.     Pascal Interface to the Macintosh Libraries
  4.  
  5.         Copyright Apple Computer, Inc. 1988-1991
  6.         All rights reserved
  7. ************************************************************}
  8.  
  9.  
  10. {$IFC UNDEFINED UsingIncludes}
  11. {$SETC UsingIncludes := 0}
  12. {$ENDC}
  13.  
  14. {$IFC NOT UsingIncludes}
  15.     UNIT FileTransfers;
  16.     INTERFACE
  17. {$ENDC}
  18.  
  19. {$IFC UNDEFINED UsingFileTransfers}
  20. {$SETC UsingFileTransfers := 1}
  21.  
  22. {$I+}
  23. {$SETC FileTransfersIncludes := UsingIncludes}
  24. {$SETC UsingIncludes := 1}
  25. {$IFC UNDEFINED UsingPackages}
  26. {$I $$Shell(PInterfaces)Packages.p}
  27. {$ENDC}
  28. {$IFC UNDEFINED UsingCTBUtilities}
  29. {$I $$Shell(PInterfaces)CTBUtilities.p}
  30. {$ENDC}
  31. {$IFC UNDEFINED UsingConnections}
  32. {$I $$Shell(PInterfaces)Connections.p}
  33. {$ENDC}
  34. {$IFC UNDEFINED UsingFiles}
  35. {$I $$Shell(PInterfaces)Files.p}
  36. {$ENDC}
  37. {$SETC UsingIncludes := FileTransfersIncludes}
  38.  
  39. CONST
  40.  
  41. { current file transfer manager version }
  42. curFTVersion        =    2;
  43.     
  44. { FTErr }
  45. ftGenericError        =    -1;
  46. ftNoErr                =    0;
  47. ftRejected            =    1;
  48. ftFailed            =    2;
  49. ftTimeOut            =    3;
  50. ftTooManyRetry        =    4;
  51. ftNotEnoughDSpace    =    5;
  52. ftRemoteCancel        =    6;
  53. ftWrongFormat        =    7;
  54. ftNoTools            =    8;
  55. ftUserCancel        =    9;
  56. ftNotSupported        =    10;
  57.  
  58. TYPE
  59. FTErr                =    OSErr;
  60.  
  61. CONST
  62.  
  63. { FTFlags }
  64. ftIsFTMode            =    $00000001;
  65. ftNoMenus            =    $00000002;
  66. ftQuiet                =    $00000004;
  67. ftConfigChanged        =    $00000010;
  68. ftSucc                =    $00000080;
  69.  
  70. TYPE
  71. FTFlags                =     LONGINT;
  72.  
  73.  
  74. CONST
  75.  
  76. { FTAttributes }
  77. ftSameCircuit        =    $0001;
  78. ftSendDisable         =    $0002;
  79. ftReceiveDisable    =    $0004;
  80. ftTextOnly            =    $0008;
  81. ftNoStdFile            =    $0010;
  82. ftMultipleFileSend    =    $0020;
  83.  
  84. TYPE
  85. FTAttributes        =    INTEGER;
  86.  
  87.  
  88. CONST
  89.  
  90. { FTDirection }
  91. ftReceiving            =    0;
  92. ftTransmitting        =    1;
  93.  
  94. TYPE
  95. FTDirection            =    INTEGER;
  96.             
  97.  
  98. FTPtr                =    ^FTRecord;
  99. FTHandle            =    ^FTPtr;
  100. FTRecord            =    PACKED RECORD
  101.     procID:        INTEGER;
  102.     flags:        FTFlags;
  103.     errCode:    FTErr;
  104.     refCon:        LONGINT;
  105.     userData:    LONGINT;
  106.     defProc:    ProcPtr;
  107.     config:        Ptr;
  108.     oldConfig:    Ptr;
  109.     environsProc:    ProcPtr;
  110.     reserved1:    LONGINT;        
  111.     reserved2:    LONGINT;        
  112.     ftPrivate:    Ptr;
  113.     sendProc:      ProcPtr;
  114.     recvProc:    ProcPtr;
  115.     writeProc:    ProcPtr;
  116.     readProc:    ProcPtr;
  117.     owner:        WindowPtr;
  118.     direction:    FTDirection;
  119.     theReply:     SFReply;
  120.     writePtr:    LONGINT;
  121.     readPtr:    LONGINT;
  122.     theBuf:        ^char;
  123.     bufSize:    LONGINT;
  124.     autoRec:    Str255;
  125.     attributes:    FTAttributes;
  126.  END;
  127.  
  128.  
  129. CONST
  130.  
  131. { FTReadProc messages }
  132. ftReadOpenFile         =     0;         { count = forkFlags, buffer = pblock from PBGetFInfo }
  133. ftReadDataFork        =    1;
  134. ftReadRsrcFork        =    2;
  135. ftReadAbort            =    3;
  136. ftReadComplete        =    4;
  137. ftReadSetFPos         =     6;         { count = forkFlags, buffer = pBlock same as PBSetFPos }
  138. ftReadGetFPos         =     7;         { count = forkFlags, buffer = pBlock same as PBGetFPos }
  139.  
  140.  
  141. { FTWriteProc messages }
  142. ftWriteOpenFile     =     0;         { count = forkFlags, buffer = pblock from PBGetFInfo }
  143. ftWriteDataFork        =    1;
  144. ftWriteRsrcFork        =    2;
  145. ftWriteAbort        =    3;
  146. ftWriteComplete        =    4;
  147. ftWriteFileInfo        =    5;
  148. ftWriteSetFPos         =     6;         { count = forkFlags, buffer = pBlock same as PBSetFPos }
  149. ftWriteGetFPos         =     7;         { count = forkFlags, buffer = pBlock same as PBGetFPos }
  150.  
  151.  
  152. {    fork flags }
  153. ftOpenDataFork        =    1;
  154. ftOpenRsrcFork        =    2;
  155.  
  156. TYPE
  157. {    application routines type definitions }
  158. FileTransferReadProcPtr = ProcPtr;
  159. FileTransferWriteProcPtr = ProcPtr;
  160.  
  161. FileTransferSendProcPtr = ProcPtr;
  162. FileTransferReceiveProcPtr = ProcPtr;
  163.  
  164. FileTransferEnvironsProcPtr = ProcPtr;
  165.  
  166. FileTransferNotificationProcPtr = ProcPtr;
  167. FileTransferChooseIdleProcPtr = ProcPtr;
  168.  
  169. FUNCTION     InitFT: FTErr;
  170. FUNCTION     FTGetVersion(hFT: FTHandle): Handle;
  171. FUNCTION     FTGetFTVersion: INTEGER;
  172.  
  173. FUNCTION     FTNew(procID: INTEGER;flags: FTFlags;sendProc: FileTransferSendProcPtr;
  174.  recvProc: FileTransferReceiveProcPtr;readProc: FileTransferReadProcPtr;
  175.  writeProc: FileTransferWriteProcPtr;environsProc: FileTransferEnvironsProcPtr;
  176.  owner: WindowPtr;refCon: LONGINT;userData: LONGINT): FTHandle;
  177.             
  178. PROCEDURE     FTDispose(hFT: FTHandle);
  179.  
  180. FUNCTION     FTStart(hFT: FTHandle;direction: FTDirection;fileInfo: SFReply): FTErr;
  181. FUNCTION     FTAbort(hFT: FTHandle): FTErr;
  182.  
  183. FUNCTION    FTSend(hFT: FTHandle;numFiles: INTEGER;pFSSpec: FSSpecArrayPtr;
  184.  notifyProc: FileTransferNotificationProcPtr): FTErr;
  185. FUNCTION    FTReceive(hFT: FTHandle;pFSSpec: FSSpecPtr;notifyProc: FileTransferNotificationProcPtr): FTErr;
  186.  
  187. PROCEDURE     FTExec(hFT: FTHandle);
  188.  
  189. PROCEDURE     FTActivate(hFT: FTHandle;activate: BOOLEAN);
  190. PROCEDURE     FTResume(hFT: FTHandle;resume: BOOLEAN);
  191. FUNCTION    FTMenu(hFT: FTHandle;menuID: INTEGER;item: INTEGER): BOOLEAN;
  192.  
  193. FUNCTION     FTChoose(VAR hFT: FTHandle;where: Point;idleProc: FileTransferChooseIdleProcPtr): INTEGER;
  194. PROCEDURE     FTEvent(hFT: FTHandle;theEvent: EventRecord);
  195.  
  196. FUNCTION      FTValidate(hFT: FTHandle): BOOLEAN;
  197. PROCEDURE     FTDefault(VAR theConfig: Ptr;procID: INTEGER;allocate: BOOLEAN);
  198.  
  199. FUNCTION      FTSetupPreflight(procID: INTEGER;VAR magicCookie: LONGINT): Handle;
  200. PROCEDURE     FTSetupSetup(procID: INTEGER;theConfig: Ptr;count: INTEGER;theDialog: DialogPtr;
  201.             VAR magicCookie: LONGINT);
  202. FUNCTION      FTSetupFilter(procID: INTEGER;theConfig: Ptr;count: INTEGER;theDialog: DialogPtr; 
  203.             VAR theEvent: EventRecord;VAR theItem: INTEGER;VAR magicCookie: LONGINT): BOOLEAN;
  204. PROCEDURE     FTSetupItem(procID: INTEGER;theConfig: Ptr;count: INTEGER;theDialog: DialogPtr;
  205.             VAR theItem: INTEGER;VAR magicCookie: LONGINT);
  206. PROCEDURE     FTSetupXCleanup(procID: INTEGER;theConfig: Ptr;count: INTEGER;
  207.             theDialog: DialogPtr;OKed: BOOLEAN;VAR magicCookie: LONGINT);
  208.  
  209. PROCEDURE     FTSetupPostflight(procID: INTEGER);
  210.  
  211. FUNCTION      FTGetConfig(hFT: FTHandle): Ptr;
  212. FUNCTION      FTSetConfig(hFT: FTHandle;thePtr: Ptr): INTEGER;
  213.  
  214. FUNCTION     FTIntlToEnglish(hFT: FTHandle;inputPtr: Ptr;VAR outputPtr: Ptr;
  215.                 language: INTEGER): OSErr;
  216. FUNCTION     FTEnglishToIntl(hFT: FTHandle;inputPtr: Ptr;VAR outputPtr: Ptr;
  217.                 language: INTEGER): OSErr;
  218.  
  219. PROCEDURE     FTGetToolName(procID: INTEGER;VAR name: Str255);
  220. FUNCTION      FTGetProcID(name: Str255): INTEGER;
  221.  
  222. PROCEDURE     FTSetRefCon(hFT: FTHandle;refCon: LONGINT);
  223. FUNCTION      FTGetRefCon(hFT: FTHandle): LONGINT;
  224.  
  225. PROCEDURE     FTSetUserData(hFT: FTHandle;userData: LONGINT);
  226. FUNCTION      FTGetUserData(hFT: FTHandle): LONGINT;
  227.  
  228. PROCEDURE    FTGetErrorString(hFT: FTHandle;id: INTEGER;VAR errMsg: Str255);
  229.  
  230.  
  231. {$ENDC} { UsingFileTransfers }
  232.  
  233. {$IFC NOT UsingIncludes}
  234.  END.
  235. {$ENDC}
  236.  
  237.